﻿#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>

////system函数可以用来执行系统命令
//int main()
//{
//	//设置控制台的相关属性
//	system("mode con cols=100 lines=30");//调整控制台的大小
//	system("title 贪吃蛇");//只有这个程序运行的过程中控制台的名字才是贪吃蛇，程序结束名字就没了
//
//	//getchar();//这个命令可以让程序持续运行
//	system("pause");//让程序暂停
//	return 0;
//}

#include<Windows.h>
//int main()
//{
//	COORD pos = { 0,0 };//COORD是结构体类型 创建变量pos 结构体变量 值为x = 0,y = 0
//	COORD pos2 = { 2,3 };//定义控制台上的坐标
//	return 0;
//}

//#include <stdbool.h>
//int main()
//{
//	////获得标准输出设备的句柄--返回的是HANDLE类型的值
//	//HANDLE houtput = GetStdHandle(STD_OUTPUT_HANDLE);//得包含头文件windows.h
//	////获得了这个句柄 就可以操作控制台了
//	////HANDLE是一个void*类型的 是一个指针
//
//	//刚开始也可以这样写
//	HANDLE houtput = NULL;//空指针
//	houtput = GetStdHandle(STD_OUTPUT_HANDLE);//获取了当前控制台的句柄
//
//	//定义一个光标信息的结构体
//	CONSOLE_CURSOR_INFO cursor_info = { 0 };
//	//获取和houtput句柄相关的控制台上的光标信息，存放到cursor_info中 
//	GetConsoleCursorInfo(houtput, &cursor_info);
//	
//
//	//printf("%d\n", cursor_info.dwSize);//dwSize是这个结构体的成员变量 打印出光标对应的比例
//	//cursor_info.bVisible;//这个指的是光标的可见度
//
//	//配置修改光标的占比值
//	cursor_info.dwSize = 50;
//
//	//要让这个光标看不见的话--默认为true
//	cursor_info.bVisible = false;
//
//	//设置和houtput句柄相关的控制台上的光标信息
//	SetConsoleCursorInfo(houtput, &cursor_info);
//
//
//	return 0;
//}

//int main()
//{
//	
//	HANDLE houtput = NULL;//空指针
//	houtput = GetStdHandle(STD_OUTPUT_HANDLE);//获取了当前控制台的句柄
//
//	//定位光标的位置
//	COORD pos = { 10,20 };
//	SetConsoleCursorPosition(houtput,pos);
//
//	return 0;
//}

//
////封装一个函数 用来设置光标的位置
//void set_pos(short x, short y)
//{
//	//获得句柄
//	HANDLE houtput = GetStdHandle(STD_OUTPUT_HANDLE);
//
//	//定位光标的位置
//	COORD pos = { x,y };
//	SetConsoleCursorPosition(houtput, pos);
//
//}
//int main()
//{
//
//	set_pos(10, 20);
//	printf("hehe\n");
//	set_pos(10, 10);
//	printf("hehe\n");
//	return 0;
//}

////下边这个也可以用宏来定义
//#define KEY_PRESS(vk) ((GetAsyncKeyState(vk)&1)?1:0) //vk代表的是虚拟按键的值
////结果是1 表示按过
////结果是0 表示未按过
//
//int main()
//{
//	short ret = GetAsyncKeyState(0x35);
//	if ((ret & 1) == 1)
//	{
//		printf("5被按过\n");
//	}
//	else
//		printf("5没被按过\n");
//	return 0;
//}

//#define KEY_PRESS(vk) ((GetAsyncKeyState(vk)&1)?1:0)
//
//int main()
//{
//	while (1)
//	{
//		if (KEY_PRESS(0x30))
//		{
//			printf("0\n");
//		}
//		else if (KEY_PRESS(0x31))
//		{
//			printf("1\n");
//		}
//		else if (KEY_PRESS(0x32))
//		{
//			printf("2\n");
//		}
//		else if (KEY_PRESS(0x33))
//		{
//			printf("3\n");
//		}
//		else if (KEY_PRESS(0x34))
//		{
//			printf("4\n");
//		}
//		else if (KEY_PRESS(0x35))
//		{
//			printf("5\n");
//		}
//		else if (KEY_PRESS(0x36))
//		{
//			printf("6\n");
//		}
//		else if (KEY_PRESS(0x37))
//		{
//			printf("7\n");
//		}
//		else if (KEY_PRESS(0x38))
//		{
//			printf("8\n");
//		}
//		else if (KEY_PRESS(0x39))
//		{
//			printf("9\n");
//		}
//	}
//	return 0;
//}


////设置本地化的时候 要包含对应的头文件
//#include<locale.h>
//int main()
//{
//	//获取c语言默认的模式的信息
//	char* ret = setlocale(LC_ALL, NULL);
//	//打印一下
//	printf("%s\n", ret);
//
//	//获取本地模式的信息
//	ret = setlocale(LC_ALL, "");
//	printf("%s\n", ret);
//	return 0;
//}

////宽字符的打印
//#include<locale.h>
//int main()
//{
//	//设置本地化
//	setlocale(LC_ALL, "");
//
//	char arr1[] = { 'a','b','c'};
//	char a = 'a';
//	char b = 'b';
//	printf("%c%c\n", a, b);//ab
//	printf("%c\n", arr1[2]);//c
//
//
//	wchar_t wc1 = L'比';//宽字符
//	wchar_t wc2 = L'特';
//	wprintf(L"%lc%lc\n", wc1,wc2);
//	wprintf(L"%lc\n", wc2);
//	wprintf(L"%lc\n", L'★');//输入法的字符占两个字节
//	wprintf(L"%lc\n", L'★');
//	return 0;
//}
//
//int main()
//{
//	system("mode con cols=30 lines=30");
//	return 0;
//}